As the cost to develop and maintain information technology grows over time, business enterprises increasingly outsource their business process functions to third-party providers. For instance, various types of businesses may rely on a provider to host their business application software to reduce the cost and inefficiencies of managing information technology systems that are outside the business's traditional expertise. Providers of hosting services must, therefore, support clients having different sizes and needs. Consequently, there is a demand for providers to offer services that are flexible and scalable to support the provider's variety of clients.
Conventional approaches for hosting solutions include multi-client systems and single-client systems. In a multi-client system, all clients share one data management environment, such as all hardware, databases, and application servers. The provider of the business application in a multi-client system thus sets up and administers each client's system. For example, the provider may be responsible for managing the application software over its lifecycle. This lifecycle management may include software upgrades, system landscape maintenance, and database maintenance. The clients, on the other hand, only need to manage their own data and business transactions. For example, the client does not need to set up an operating system landscape, install software components, or maintain an overall data management system. Furthermore, the client is not involved in any overall system operations, such as copying client data for backup or recovery purposes.
One disadvantage of a multi-client system is that because a large number of clients may share data in a common database, any database maintenance becomes problematic. For example, the provider must coordinate upgrades to minimize the affect of the database's downtime on each of the clients. In addition, software upgrades may require a very high level of testing to ensure reliability for all clients. Thus, as the number of clients increases, the overall upgrade time also increases, which causes the total downtime to increase for all clients.
Yet another disadvantage of the multi-client system is that deploying content to a client requires a great amount of time and manual effort. For instance, the content for all clients is distributed throughout the common database. The provider thus cannot simply copy one client's content on demand as that client's content must first be sorted from all of the other clients' content in the common database.
Finally, another disadvantage of the multi-client system is that the provider cannot use currently available database tools to backup and recover a specific client's content. More specifically, because the provider organizes each clients' content in one common database, rather than a separate physical database, the provider cannot use standard database tools to recover one client's content. The provider must thus restore the entire client environment and client content through a client export/import process, which can take several days, and in some cases, several weeks. This inability to quickly backup or recover data greatly decreases the reliability of client data.
Another solution for hosting multiple clients is the single-client system. In this approach, the provider provides each client with its own system, including, for example, hardware, databases, application servers, applications, and data. A primary advantage of the single-client approach is that the physical separation of client data allows a provider to use standard database management tools to execute a variety of important management functions, such as backup and recovery. In addition, the provider may perform management functions on demand for each client without affecting the other clients.
Because, however, under a single-client system, each client has its own complete system, the client is generally responsible for maintaining its respective system. For example, a client must decide which software components, releases, upgrades, and support packages to install on its system. Therefore, in the single-client system, the client is deeply involved in the maintenance and administration of its system. Consequently, a single-client solution often requires tremendous effort, expertise, and investment from the client to maintain the system.
Accordingly, it is desirable to provide a server solution that enables a provider to host a large number of clients, while enabling separate storage and management of each client's applications and data.